package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-其他入库单物料明细其他信息对象 erp_king_other_inbound_material_detail_info
 *
 * @author cxl
 * @date 2024-08-03
 */
@TableName ("erp_king_other_inbound_material_detail_info")
@ApiModel (value = "其他入库单物料明细其他信息", description = "金蝶-其他入库单物料明细其他信息")
@Data
public class KingOtherInboundMaterialDetailEntity{

    /** 主键id */
    @TableId (type = IdType.INPUT)
    private String id;

    /** 其他入库单主表id */
    @ApiModelProperty ("其他入库单主表id")
    @TableField ("other_inbound_id")
    @Excel (name = "其他入库单主表id")
    private String otherInboundId;

    /** 其他入库单物料表id */
    @ApiModelProperty ("其他入库单物料表id")
    @TableField ("other_inbound_material_id")
    @Excel (name = "其他入库单物料表id")
    private String otherInboundMaterialId;

    /** 物料id */
    @ApiModelProperty ("物料id")
    @TableField ("material_id")
    @Excel (name = "物料id")
    private String materialId;

    /** 物料编码 */
    @ApiModelProperty ("物料编码")
    @TableField ("material_code")
    @Excel (name = "物料编码")
    private String materialCode;

    /** 物料名称 */
    @ApiModelProperty ("物料名称")
    @TableField ("material_name")
    @Excel (name = "物料名称")
    private String materialName;

    /** 规格型号 */
    @ApiModelProperty ("规格型号")
    @TableField ("model")
    @Excel (name = "规格型号")
    private String model;

    /** 辅助属性 */
    @ApiModelProperty ("辅助属性")
    @TableField ("support_attr")
    @Excel (name = "辅助属性")
    private String supportAttr;

    /** 收货仓库id */
    @ApiModelProperty ("收货仓库id")
    @TableField ("receive_warehouse_id")
    @Excel (name = "收货仓库id")
    private String receiveWarehouseId;

    /** 收货仓库编码 */
    @ApiModelProperty ("收货仓库编码")
    @TableField ("receive_warehouse_code")
    @Excel (name = "收货仓库编码")
    private String receiveWarehouseCode;

    /** 仓位 */
    @ApiModelProperty ("仓位")
    @TableField ("warehouse_position")
    @Excel (name = "仓位")
    private String warehousePosition;

    /** 单位 */
    @ApiModelProperty ("单位")
    @TableField ("unit")
    @Excel (name = "单位")
    private String unit;

    /** 辅单位 */
    @ApiModelProperty ("辅单位")
    @TableField ("auxiliary_unit")
    @Excel (name = "辅单位")
    private String auxiliaryUnit;

    /** 实收数量 */
    @ApiModelProperty ("实收数量")
    @TableField ("received_num")
    @Excel (name = "实收数量")
    private String receivedNum;

    /** 实收数量(辅单位) */
    @ApiModelProperty ("实收数量(辅单位)")
    @TableField ("received_num_auxiliary_unit")
    @Excel (name = "实收数量(辅单位)")
    private String receivedNumAuxiliaryUnit;

    /** 批号 */
    @ApiModelProperty ("批号")
    @TableField ("batch_num")
    @Excel (name = "批号")
    private String batchNum;

    /** 生产日期 */
    @ApiModelProperty ("生产日期")
    @TableField ("manufacture_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date manufactureTime;

    /** 保质期 */
    @ApiModelProperty ("保质期")
    @TableField ("warranty_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "保质期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date warrantyTime;

    /** 保质期单位 */
    @ApiModelProperty ("保质期单位")
    @TableField ("warranty_unit")
    @Excel (name = "保质期单位")
    private String warrantyUnit;

    /** 有效期至 */
    @ApiModelProperty ("有效期至")
    @TableField ("valid_to")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validTo;

    /** 入库类型（合格入库；不合格入库；废品入库） */
    @TableField ("inbound_type")
    @ApiModelProperty ("合格入库;不合格入库;废品入库")
    @Excel (name = "入库类型", readConverterExp = "合格入库;不合格入库;废品入库")
    private String inboundType;

    /** 库存状态表code */
    @ApiModelProperty ("库存状态表code")
    @TableField ("inventory_status")
    @Excel (name = "库存状态表code")
    private String inventoryStatus;

    /** BOM版本 */
    @ApiModelProperty ("BOM版本")
    @TableField ("bom_ver")
    @Excel (name = "BOM版本")
    private String bomVer;

    /** 计划跟踪号 */
    @ApiModelProperty ("计划跟踪号")
    @TableField ("plan_tracking_code")
    @Excel (name = "计划跟踪号")
    private String planTrackingCode;

    /** 货主 */
    @ApiModelProperty ("货主")
    @TableField ("cargo_owner")
    @Excel (name = "货主")
    private String cargoOwner;

    /** 保管者类型 */
    @ApiModelProperty ("保管者类型")
    @TableField ("preserver_type")
    @Excel (name = "保管者类型")
    private String preserverType;

    /** 保管者 */
    @ApiModelProperty ("保管者")
    @TableField ("preserver")
    @Excel (name = "保管者")
    private String preserver;

    /** 入库时间 */
    @ApiModelProperty ("入库时间")
    @TableField ("inbound_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inboundTime;

    /** 源单类型 */
    @ApiModelProperty ("源单类型")
    @TableField ("source_doc_type")
    @Excel (name = "源单类型")
    private String sourceDocType;

    /** 源单单号 */
    @ApiModelProperty ("源单单号")
    @TableField ("source_doc_code")
    @Excel (name = "源单单号")
    private String sourceDocCode;

    /** 序列号单位 */
    @ApiModelProperty ("序列号单位")
    @TableField ("serial_code_unit")
    @Excel (name = "序列号单位")
    private String serialCodeUnit;

    /** 序列号单位数量 */
    @ApiModelProperty ("序列号单位数量")
    @TableField ("serial_code_unit_num")
    @Excel (name = "序列号单位数量")
    private String serialCodeUnitNum;

    /** 序列号上传 */
    @ApiModelProperty ("序列号上传")
    @TableField ("serial_code_upload")
    @Excel (name = "序列号上传")
    private String serialCodeUpload;

    /** 录入人 */
    @ApiModelProperty ("录入人")
    @TableField ("user_id")
    @Excel (name = "录入人")
    private String userId;

    /** 更新时间 */
    @ApiModelProperty ("更新时间")
    @TableField ("change_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /** 逻辑删除 */
    @ApiModelProperty ("逻辑删除")
    @TableField ("is_used")
    @Excel (name = "逻辑删除")
    @TableLogic
    private Integer isUsed;

    /** 备注 */
    @ApiModelProperty ("备注")
    @TableField ("remark")
    @Excel (name = "备注")
    private String remark;

    /** 创建时间 */
    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    @ApiModelProperty("物料明细序列号信息")
    @TableField(exist = false)
    private List<KingOtherInboundMaterialDetailSerialEntity> materialDetailSerials;

}
